.\"
.\" Copyright (C) 1994-2021 Altair Engineering, Inc.
.\" For more information, contact Altair at www.altair.com.
.\"
.\" This file is part of both the OpenPBS software ("OpenPBS")
.\" and the PBS Professional ("PBS Pro") software.
.\"
.\" Open Source License Information:
.\"
.\" OpenPBS is free software. You can redistribute it and/or modify it under
.\" the terms of the GNU Affero General Public License as published by the
.\" Free Software Foundation, either version 3 of the License, or (at your
.\" option) any later version.
.\"
.\" OpenPBS is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
.\" License for more details.
.\"
.\" You should have received a copy of the GNU Affero General Public License
.\" along with this program.  If not, see <http://www.gnu.org/licenses/>.
.\"
.\" Commercial License Information:
.\"
.\" PBS Pro is commercially licensed software that shares a common core with
.\" the OpenPBS software.  For a copy of the commercial license terms and
.\" conditions, go to: (http://www.pbspro.com/agreement.html) or contact the
.\" Altair Legal Department.
.\"
.\" Altair's dual-license business model allows companies, individuals, and
.\" organizations to create proprietary derivative works of OpenPBS and
.\" distribute them - whether embedded or bundled with other software -
.\" under a commercial license agreement.
.\"
.\" Use of Altair's trademarks, including but not limited to "PBS™",
.\" "OpenPBS®", "PBS Professional®", and "PBS Pro™" and Altair's logos is
.\" subject to Altair's trademark licensing policies.
.\"
.TH pbs_node_attributes 7B "17 July 2020" Local "PBS Professional"
.SH NAME
.B pbs_node_attributes 
\- attributes of PBS vnodes


.SH DESCRIPTION
Vnodes have the following attributes:

.IP comment 8
Information about this vnode.  This attribute may be set by the
manager to any string to inform users of any information relating to
the node. If this attribute is not explicitly set, the PBS server will
use the attribute to pass information about the node status,
specifically why the node is down. If the attribute is explicitly set
by the manager, it will not be modified by the server.
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP current_aoe 8
The AOE currently instantiated on this vnode.  Cannot be set on 
server's host.
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: 
.I Unset

.IP current_eoe 8
Current value of eoe on this vnode.  We do not recommend setting this
attribute manually.
.br
Readable by all; settable by Manager (not recommended).
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default:
.I Unset

.IP in_multivnode_host 8
Specifies whether a vnode is part of a multi-vnoded host.  Used
internally.  Do not set.
.br
Readable and settable by Manager (not recommended).
.br
Format:
.I Integer 
.br
Python type:
.I int
.br
Behavior:
.RS
.IP 1 3
Part of a multi-vnode host
.IP Unset 3
Not part of a multi-vnode host
.RE
.IP
Default: 
.I Unset   

.IP jobs 8
List of jobs running on this vnode.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Syntax: 
.I <processor number>/<job ID>, ... 
.br
Python type:
.I int
.br

.IP last_state_change_time 8
Records the most recent time that this node changed state.              
.br
Format: 
.RS 11
Timestamp
.br
Printed by qstat in human-readable Date format.  
.br
Output in hooks as seconds since epoch.
.RE
.IP

.IP last_used_time 8
Records the most recent time that this node finished being used for a
job or reservation.  Set at creation or reboot time.  Updated when
node is released early from a running job.  Reset when node is ramped
up.
.br
Format: 
.RS 11
Timestamp
.br
Printed by qstat in human-readable Date format.  
.br
Output in hooks as seconds since epoch.
.RE

.IP license 8
.br
Indicates whether this vnode is licensed.
.br
Readable by all; set by PBS.
.br
Format:
.I Character
.br
Python type: 
.I str
.br
Valid values:
.RS
.IP l 3
This vnode is licensed.
.RE
.IP 
Default: 
.I Unset

.IP license_info 8
Number of licenses assigned to this vnode.  
.br
Readable by all; set by PBS.             
.br
Format: 
.I Integer
.br
Python type:
.I int
.br
Default: 
.I Unset

.IP lictype 8
No longer used.

.IP maintenance_jobs 8
List of jobs that were running on this vnode, but have been suspended
via the
.I admin-suspend 
signal to qsig.
.br
Readable by Manager; set by PBS.
.br
Format:
.I string_array                      
.br
Python type:
.I str
.br
Default: No default 

.IP Mom
Hostname of host on which MoM daemon runs.  
.br
Readable by all.  Can be explicitly set by Manager only via 
.B qmgr, 
and only at vnode creation. The server can set this to the FQDN of the host 
on which MoM runs, if the vnode name is the same as the hostname.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: Value of 
.I vnode 
resource (vnode name)

.IP name 8
The name of this vnode.
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP no_multinode_jobs 8
Controls whether jobs which request more than one chunk are allowed to execute
on this vnode.  Used for cycle harvesting.
.br
Readable by all; settable by Manager.
.br
Format: 
.I Boolean
.br
Python type:
.I bool
.br
Behavior: 
.RS
.IP True 3
Jobs requesting more than one chunk are not allowed to execute on this vnode.
.RE
.IP
Default: 
.I False

.IP ntype 8
The type of this vnode.
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Valid values:
.RS
.IP PBS 3
Normal vnode
.br
Python type: 
.I pbs.ND_PBS
.br
Default: 
.I PBS
.RE

.IP partition 8
Name of partition to which this vnode is assigned.  A vnode can be
assigned to at most one partition.
.br
Readable by all; settable by Operator and Manager.
.br
Format:
.I String
.br
Python type:
.I str
.br
Default: No default

.IP pbs_version 8
The version of PBS for this MoM.  
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP pcpus 8
.B Deprecated.  
The number of physical CPUs on this vnode.  This is set to the number
of CPUs available when MoM starts.  For a multiple-vnode MoM, only the
natural vnode has 
.I pcpus.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: 
.I Number of CPUs on startup

.IP pnames
The list of resources being used for placement sets.  
Not used for scheduling; advisory only.
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Syntax: 
.I Comma-separated list of resource names
.br
Python type: 
.I str
.br
Default: No default

.IP Port 8
Port number on which MoM daemon listens.  
.br
Can be explicitly set only via
.B qmgr, 
and only at vnode creation.  
Readable and settable by Operator and Manager.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: 
.I 15002

.IP poweroff_eligible 8
Enables powering this vnode up and down by PBS.
.br
Readable by all; settable by Manager.
.br
Format: 
.I Boolean
.br
Python type:
.I bool
.br
Values:
.RS 11
.IP True
PBS can power this vnode on and off.
.IP False
PBS cannot power this vnode on and off.
.RE
.IP
Default: 
.I False



.IP power_provisioning 8
Enables use of power profiles by this vnode.
.br
Readable by all; settable by Manager.
.br
Format:
.I Boolean
.br
Python type:
.I bool
.br
Behavior:
.RS
.IP True 3
Power provisioning is enabled at this vnode.
.IP False 3
Power provisioning is disabled at this vnode.
.RE
.IP
Default: 
.I False

.IP Priority 8
The priority of this vnode compared with other vnodes.
.br
Readable by all; settable by Operator and Manager.
.br
Format:
.I Integer
.br
Python type: 
.I int
.br
Valid values: 
.I -1024 to +1023
.br
Default: No default

.IP provision_enable
Controls whether this vnode can be provisioned.  
Cannot be set on server's host.  
.br
Format: 
.I Boolean
.br
Python type: 
.I bool
.br
Behavior:
.RS
.IP True 3
This vnode may be provisioned.  
.IP False 3
This vnode may not be provisioned.  
.RE
.IP
Default: 
.I False

.IP queue 8
.B Deprecated.  
The queue with which this vnode is associated.  Each vnode can be
associated with at most 1 queue.  Queues can be associated with
multiple vnodes.  Any jobs in a queue that has associated vnodes can
run only on those vnodes.  If a vnode has an associated queue, only
jobs in that queue can run on that vnode.  
.br
Readable by all; settable by Manager.
.br
Format: 
.I String
.br
Python type:
.I pbs.queue
.br
Behavior:
.RS
.IP "<name of queue>" 3
Only jobs in specified queue may run on this vnode.  
.IP Unset 3
Any job in any queue that does not have associated vnodes can run on this vnode.
.RE
.IP 
Default: No default

.IP resources_assigned 8
The total amount of each resource allocated to jobs and started
reservations running on this vnode.
.br
Readable by all; set by PBS.
.br
Format: String
.br
Syntax: 
.RS 11
.I resources_assigned.<resource name>=<value>[,resources_assigned.<resource name>=<value>
.RE
.IP
Python type: 
.I pbs.pbs_resource
.br
Syntax: 
.RS 11
resources_assigned['<resource name>'] = < val> 
.br
where 
.I resource name 
is any built-in or custom resource
.RE
.IP
Default: No default

.IP resources_available 8
The list of resource and amounts available on this vnode.  If not
explicitly set, the amount shown is that reported by the pbs_mom
running on this vnode.  If a resource value is explicitly set, that
value is retained across restarts.
.br
Readable by all; settable by Operator and Manager.
.br
Format:
.I String
.br
Syntax:
.RS 11
.I resources_available.<resource name>=<value>, 
.I resources_available.<resource name> = <value>, ...
.RE
.IP 
Python type:
.I pbs.pbs_resource
.br
Syntax:
.RS 11
resources_available['<resource name>'] = < val> 
.br
where 
.I resource name 
is any built-in or custom resource
.RE
.IP 
Default: No default

.IP resv 8 
List of advance and standing reservations pending on this vnode.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
.I <reservation ID>[, <reservation ID>, ...]
.br
(Comma-separated list of reservation IDs)
.RE
.IP
Python type:
.I str
.br
Example: resv = R142.examplemachine, R143.examplemachine
.br
Default: No default

.IP resv_enable 8
Controls whether the vnode can be used for advance and standing
reservations.  Reservations are incompatible with cycle harvesting.
.br
Readable by all; settable by Manger.
.br
Format: 
.I Boolean
.br
Python type: 
.I bool
.br
Behavior: 
.RS 11
When set to 
.I True, 
this vnode can be used for reservations. Existing reservations are
honored when this attribute is changed from 
.I True 
to 
.I False.
.RE
.IP
Default: 
.I True

.IP sharing 8
Specifies whether more than one job at a time can use the resources of
the vnode or the vnode's host.  Either (1) the vnode or host is
allocated exclusively to one job, or (2) the vnode's or host's unused
resources are available to other jobs.  
.br
Can be set using 
.I pbs_mom -s insert
only.
.br
Readable by all; settable by Operator and Manager.
.br
Format: 
.I String
.br
Python type:
.I int 
.br
Valid values: 
.RS
.IP default_shared 3
Defaults to 
.I shared
.br
Python type:
.I pbs.ND_DEFAULT_SHARED
.IP default_excl 3
Defaults to 
.I exclusive
.br
Python type:
.I pbs.ND_DEFAULT_EXCL
.IP default_exclhost 3
Entire host is assigned to the job unless the job's sharing request
specifies otherwise
.br
Python type:
.I pbs.ND_DEFAULT_EXCLHOST
.IP ignore_excl 3
Overrides any job 
.I place=excl
setting
.br
Python type:
.I pbs.ND_IGNORE_EXCL
.IP force_excl 3
Overrides any job
.I place=shared
setting
.br
Python type:
.I pbs.ND_FORCE_EXCL
.IP force_exclhost 3
The entire host is assigned to the job, regardless of the job's sharing request
.br
Python type:
.I pbs.ND_FORCE_EXCLHOST
.IP Unset 3
Defaults to 
.I shared
.RE
.IP
Behavior of a vnode or host is determined by a combination of the 
.I sharing
attribute and a job's placement directive, defined as follows:
.nf
                 | Vnode Behavior      | Host Behavior
                 | when place=         | when place=
                 |                     |   
sharing value    | unset  shared excl  |exclhost !=exclhost
----------------------------------------------------------------
not set          | shared shared excl  | excl   depends on place
default_shared   | shared shared excl  | excl   depends on place
default_excl     | excl   shared excl  | excl   depends on place
default_exclhost | excl   shared excl  | excl   depends on place
ignore_excl      | shared shared shared| shared not exclusive
force_excl       | excl   excl   excl  | excl   not exclusive
force_exclhost   | excl   excl   excl  | excl   excl
.fi

Example: <vnode name>: sharing=force_excl
.br
Default value: 
.I default_shared

.IP state 8
Shows or sets the state of the vnode.  
.br
Readable by all.  All states are set by PBS; Operator and Manager 
can set 
.I state
to 
.I offline.
.br
Format: 
.I String 
.br
Syntax: 
.I <state>[, <state>, ...]
.br
(Comma-separated list of one or more states)
.br
Python type: 
.I int
.br
Valid values:
.RS
.IP busy 3
Vnode is reporting load average greater than allowed max.
Can combine with 
.I offline
.IP down 3
Node is not responding to queries from the server.  
Cannot be combined with 
.I free, provisioning.
.IP free 3
Vnode is up and capable of accepting additional job(s).
Cannot be combined with other states.
.IP job-busy 3
All CPUs on the vnode are allocated to jobs.
Can combine with: 
.I offline, resv_exclusive
.IP job-exclusive 3
Entire vnode is exclusively allocated to one job at the job's request.
Can combine:
.I offline, resv_exclusive
.IP offline 3
Jobs are not to be assigned to this vnode.  
Can combine: 
.I busy, job-busy, job-exclusive, resv_exclusive
.IP provisioning 3
Vnode is in being provisioned.  Cannot be combined with other states.
.IP resv-exclusive 3
Running reservation has requested exclusive use of vnode.  Can combine
with: 
.I job-exclusive, offline
.IP stale 3
Vnode was previously reported to server, but is no longer reported to
server.  Cannot combine with 
.I free, provisioning.
.IP state-unknown 3
The server has never been able to contact the vnode.  Either MoM is
not running on the vnode, the vnode hardware is down, or there is a
network problem.
.IP unresolvable 3
The server cannot resolve the name of the vnode.
.IP wait-provisioning 3
Vnode needs to be provisioned, but can't: limit reached
for concurrently provisioning vnodes.  See the 
.I max_concurrent_provision 
server attribute.
.RE
.IP
Default: No default

.IP topology_info
Contains information intended to be used in hooks.  
.br
Visible in and usable by hooks only.
Invisible to Manager, Operator, User.
.br
Format: 
.I XML String
.br
Python type: 
.I str
.br
Default value: 
.I Unset

.IP vnode_pool 8
Cray only.  Allows just one MoM, instead of all, to report inventory
upon startup, allowing faster startup and less network communication
between server and non-reporting MoMs.  On each Cray, all MoMs must
have same setting for this attribute.  Can be set only at vnode
creation; valid only on login nodes running a MoM.  Not supported on
non-Cray machines.
.br
Readable by all; settable by Manager.
.br
Format: 
.I Integer
.br
Python type:
.I int
.br
Behavior:
.RS
.IP ">0" 3
Only one MoM per Cray reports inventory.
.IP Unset 3
Each MoM reports inventory separately.
.RE
.IP 
Default: 
.I 0
(Unset)


.SH SEE ALSO
qmgr(1B)

